package com.zhuanzhuan.hero.user.service;

import com.bj58.zhuanzhuan.zzentry.common.service.entity.ServiceHeaderEntity;
import com.zhuanzhuan.hero.user.dto.reliable.QueryReliableListDTO;
import com.zhuanzhuan.hero.user.vo.PageResultWrapper;
import com.zhuanzhuan.hero.user.vo.UserItemBriefVO;
import com.zhuanzhuan.hero.user.vo.UserListItemVO;
import com.zhuanzhuan.hero.user.vo.reliable.CertifyReliableDTO;

import java.util.List;

/**
 * @ClassName IReliableService
 * @Description
 * @Author hanjunjun
 * @Date 2024/7/5 14:37
 */
public interface IReliableService {

    /**
     * 分页查询靠谱列表
     *
     * @param fromUid 登录人
     * @param toUid 查看谁的列表
     * @param queryReliableListDTO
     * @return com.zhuanzhuan.hero.user.vo.PageResultWrapper<com.zhuanzhuan.hero.user.vo.UserListItemVO>
     * @author  hanjunjun
     * @date 2024/7/5
     **/
    PageResultWrapper<UserListItemVO> pageReliables(Long fromUid, Long toUid, QueryReliableListDTO queryReliableListDTO);

    /**
     * 是否有资格认证
     *
     * @param fromUid
     * @param toUid
     * @return boolean
     * @author  hanjunjun
     * @date 2024/7/24
     **/
    boolean hasCertifyQualify(Long fromUid, Long toUid);

    /**
     * 认证靠谱/不靠谱
     *
     * @param fromUid
     * @param certifyReliableDTO
     * @return void
     * @author  hanjunjun
     * @date 2024/7/5
     **/
    void certifyReliable(Long fromUid, CertifyReliableDTO certifyReliableDTO, ServiceHeaderEntity header);

    /**
     * 撤销靠谱/不靠谱
     *
     * @param fromUid
     * @param certifyReliableDTO
     * @return void
     * @author  hanjunjun
     * @date 2024/7/5
     **/
    void cancelReliable(Long fromUid, CertifyReliableDTO certifyReliableDTO);

    /**
     * 查询给自己认证靠谱的用户
     *
     * @param uid
     * @return java.util.List<com.zhuanzhuan.hero.user.vo.UserItemBriefVO>
     * @author  hanjunjun
     * @date 2024/7/6
     **/
    List<UserItemBriefVO> queryReliableUsers(Long uid);
}
